package edu.eam.vpujpa.entidades;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;

@Entity
@Table(name = "PERSONAS_VPU")
@Inheritance(strategy = InheritanceType.JOINED)
public class Persona implements Serializable {

	/**
	 * Default serial version uid
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "ID")
	private long id;

	@Column(name = "CEDULA", nullable = false, unique = true)
	private int cedula;

	@Column(name = "NOMBRE", nullable = false, unique = true)
	private String nombre;

	@Column(name = "APELLIDOS", nullable = false)
	private String apellidos;

	@Column(name = "MOVIL", nullable = false)
	private int movil;

	@Column(name = "EMAIL", nullable = false)
	private String email;

	public Persona() {
		super();
	}

	public Persona(int cedula, String nombre, String apellidos, int movil,
			String email) {
		super();
		this.cedula = cedula;
		this.nombre = nombre;
		this.apellidos = apellidos;
		this.movil = movil;
		this.email = email;
	}

	/**
	 * Este metodo retorna el atributo id de la clase Persona
	 * 
	 * @return id El atributo id de la clase Persona que se quiere obtener
	 * 
	 * @author Habib
	 */
	public long getId() {
		return id;
	}

	/**
	 * Este metodo establece el atributo id de la clase Persona
	 * 
	 * @param id
	 *            El atributo id de la clase Persona que se quiere establecer
	 * 
	 * @author Habib
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * Este metodo retorna el atributo cedula de la clase Persona
	 * 
	 * @return cedula El atributo cedula de la clase Persona que se quiere
	 *         obtener
	 * 
	 * @author Habib
	 */
	public int getCedula() {
		return cedula;
	}

	/**
	 * Este metodo establece el atributo cedula de la clase Persona
	 * 
	 * @param cedula
	 *            El atributo cedula de la clase Persona que se quiere
	 *            establecer
	 * 
	 * @author Habib
	 */
	public void setCedula(int cedula) {
		this.cedula = cedula;
	}

	/**
	 * Este metodo retorna el atributo nombre de la clase Persona
	 * 
	 * @return nombre El atributo nombre de la clase Persona que se quiere
	 *         obtener
	 * 
	 * @author Habib
	 */
	public String getNombre() {
		return nombre;
	}

	/**
	 * Este metodo establece el atributo nombre de la clase Persona
	 * 
	 * @param nombre
	 *            El atributo nombre de la clase Persona que se quiere
	 *            establecer
	 * 
	 * @author Habib
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * Este metodo retorna el atributo apellidos de la clase Persona
	 * 
	 * @return apellidos El atributo apellidos de la clase Persona que se quiere
	 *         obtener
	 * 
	 * @author Habib
	 */
	public String getApellidos() {
		return apellidos;
	}

	/**
	 * Este metodo establece el atributo apellidos de la clase Persona
	 * 
	 * @param apellidos
	 *            El atributo apellidos de la clase Persona que se quiere
	 *            establecer
	 * 
	 * @author Habib
	 */
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	/**
	 * Este metodo retorna el atributo movil de la clase Persona
	 * 
	 * @return movil El atributo movil de la clase Persona que se quiere obtener
	 * 
	 * @author Habib
	 */
	public int getMovil() {
		return movil;
	}

	/**
	 * Este metodo establece el atributo movil de la clase Persona
	 * 
	 * @param movil
	 *            El atributo movil de la clase Persona que se quiere establecer
	 * 
	 * @author Habib
	 */
	public void setMovil(int movil) {
		this.movil = movil;
	}

	/**
	 * Este metodo retorna el atributo email de la clase Persona
	 * 
	 * @return email El atributo email de la clase Persona que se quiere obtener
	 * 
	 * @author Habib
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * Este metodo establece el atributo email de la clase Persona
	 * 
	 * @param email
	 *            El atributo email de la clase Persona que se quiere establecer
	 * 
	 * @author Habib
	 */
	public void setEmail(String email) {
		this.email = email;
	}
}
